package com.xyh.affairs.communication;

import com.alibaba.fastjson.JSONObject;
import com.xyh.affairs.utils.TransactionType;
import jdk.nashorn.internal.scripts.JD;

import java.util.HashMap;
import java.util.Map;
import java.util.UUID;

/**
 * @version v1.0
 * @类描述：
 * @项目名称：
 * @包名： com.xyh.affairs
 * @类名称：TransactionMs
 * @创建人：YIHANG.XU
 * @创建时间：2020/8/92:12 下午
 * @修改人：YIHANG.XU
 * @修改时间：2020/8/92:12 下午
 * @修改备注：
 * @Copyright
 */
public class TransactionMs {
    //存储本地存储的那些事务
    public static Map<String, TransactionVo> map = new HashMap<>();

    //创建事务
    public static String createTransactionGroup() {
        String s = UUID.randomUUID().toString();
        JSONObject jsonObject = new JSONObject();
        jsonObject.put("groupId", s);
        jsonObject.put("command", "create");
        //netty.sent(jsonObject);
        return s;
    }
    //远程事务组添加
    public static void addTransaction(TransactionVo transactionVo) {
        JSONObject jsonObject = new JSONObject();
        jsonObject.put("groupId",transactionVo.getGroupId() );
        jsonObject.put("transactionType", transactionVo.getTransactionType());
        jsonObject.put("command", "add");

        //netty.sent(jsonObject);

    }
    //本地事务组
    public static TransactionVo localTransactionVo(String groupId, String transactionType) {
        String transactionId = UUID.randomUUID().toString();
        TransactionVo transactionVo = new TransactionVo(groupId, transactionId, transactionType);
        map.put(groupId, transactionVo);
        return transactionVo;
    }

    public static TransactionVo getTransaction(String groupId) {
        return map.get(groupId);
    }

    public static TransactionVo setTransaction(String groupId, TransactionVo transactionVo) {
        return map.put(groupId, transactionVo);
    }
}
